" .align 8 \n"
"gdt: \n"
" .quad 0x0000000000000000 \n"
- " .quad 0x00009a000000ffff \n" /* Ring 0 code, base 0 limit 0xffff */
- " .quad 0x000092000000ffff \n" /* Ring 0 data, base 0 limit 0xffff */
+ " .quad 0x008f9a000000ffff \n" /* Ring 0 16b code, base 0 limit 4G */
+ " .quad 0x008f92000000ffff \n" /* Ring 0 16b data, base 0 limit 4G */
"gdt_end: \n"
" \n"
" .bss \n"
.byte 0x00, 0x9b, 0xcf, 0x00
gdt_entry_pm_16bit_cs:
.word 0xffff, 0x0000
- .byte REAL_MODE_CODE_OFFSET >> 16, 0x9b, 0x0, 0x0
+ .byte REAL_MODE_CODE_OFFSET >> 16, 0x9b, 0x8f, 0x0
gdt_entry_pm_32bit_ds:
.word 0xffff, 0x0000
.byte 0x0, 0x93, 0xcf, 0x0
gdt_entry_pm_16bit_ds:
.word 0xffff, 0x0000
- .byte 0x0, 0x93, 0x0, 0x0
+ .byte 0x0, 0x93, 0x8f, 0x0
gdt_entry_end:
protmode_gdtdesc: